package com.jjty.dataGenerator.jserji.utils;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

public class StudentNumberGenerator {
    // 学校名称 → 前缀映射
    private static final Map<String, String> SCHOOL_PREFIX_MAP = new HashMap<>();
    // 可选年份（2024、2023、2022）
    private static final String[] YEARS = {"2024", "2023", "2022"};
    // 固定后缀前两位
    private static final String MIDDLE_FIX = "01";

    static {
        // 初始化学校前缀映射
        SCHOOL_PREFIX_MAP.put("泰州市爱的摇篮幼儿园", "ADYL");
        SCHOOL_PREFIX_MAP.put("泰兴市长生幼儿园", "CS");
        SCHOOL_PREFIX_MAP.put("靖江市地中海幼儿园", "DZH");
        SCHOOL_PREFIX_MAP.put("泰州医药高新区乐童幼儿园", "LT");
        SCHOOL_PREFIX_MAP.put("泰州市姜堰区运粮幼儿园", "YL");
        SCHOOL_PREFIX_MAP.put("兴化市戴南镇阳光幼儿园", "YG");
    }

    /**
     * 生成随机年份
     */
    public static String generateRandomYear() {
        return YEARS[new Random().nextInt(YEARS.length)];
    }

    /**
     * 生成 studentNumber（支持指定年份）
     * @param schoolName 学校名称
     * @param year       年份（2024/2023/2022）
     * @param sequence   递增序号（从 001 开始）
     * @return 完整 studentNumber，不匹配时返回 null
     */
    public static String generate(String schoolName, String year, int sequence) {
        // 根据学校名称获取前缀
        String prefix = SCHOOL_PREFIX_MAP.get(schoolName);
        if (prefix == null) {
            return null; // 非指定学校，返回 null
        }

        // 序号补 0（保持三位，如 1→001）
        String seqStr = String.format("%03d", sequence);

        return prefix + year + MIDDLE_FIX + seqStr;
    }
}